package com.crm.service.saling;

import com.crm.pojo.*;
import com.crm.vo.CODetailsVO;
import com.crm.vo.ContractClientCodetailsVO;
import org.springframework.data.jpa.repository.Query;

import java.math.BigDecimal;
import java.util.List;

/**
 * Created by dr5hx on 2018/8/9
 */

public interface CODetailsService {
    /**
     * 显示对应合同的所有订单详情
     *
     * @param orderid
     * @return
     */
    public List<CODetailsVO> showOrderDetailsList(Long orderid);

    /**
     * 删除订单详情
     *
     * @param contractId
     */
    public void deleteCODetailsById(Long contractId);

    /**
     * 保存对应订单的对应订单详情
     *
     * @param coDetail
     * @param id
     */
    public void saveCODetail(CODetail coDetail, Long id);

    /**
     * 获取某个合同的详细数据
     *
     * @param coId
     * @return
     */
    public CODetailsVO getOneCODetail(Long coId);


    /**
     * 保存修改得数据
     *
     * @param coDetail
     */
    public CODetail saveEditCODetail(CODetail coDetail);

    /**
     * 保存订单详情数据
     *
     * @param list
     * @return
     */
    public List<CODetail> saveCoDetailList(List<CODetail> list);

    /**
     * 查询合同id对应的所有合同详情的所有数据所包含的金额
     *
     * @param contractId
     * @return
     */
    public BigDecimal getCodetailMoneyByContractId(Long contractId);

    /**
     * 根据客户编号查询该客户得所有订单，以及每个订单对应的订单详情
     *
     * @return
     */
    public List<CODetailsVO> getAllCODetailVOByClientId(Long clientId);

    /**
     * 查询对应客户的对应的发货信息
     *
     * @param clientId
     * @return
     */
    public List<DispatcherDetail> getDispatcherDetailRecordListByClientId(Long clientId);

    /**
     * 根据客户编号查询发货单
     *
     * @param clientId
     * @return
     */
    public List<Dispatcher> getDispatcherRecordListByClientId(Long clientId);

    /**
     * 获取对应客户的对应回款计划
     *
     * @param clientId
     * @return
     */
    public List<PlaningBack> getPlaningBackRecordListByClientId(Long clientId);

    /**
     * 根据客户编号查询回款
     *
     * @param clientId
     * @return
     */
    public List<Back> getBackRecordListByClientId(Long clientId);


    /**
     * 查询订单详细细节
     *
     * @return
     */

    public List<ContractClientCodetailsVO> getContractClientCodetailsVOList(int currpage, int rows);
}
